// https://leetcode.cn/problems/longest-common-prefix/description/

// for循环嵌套while循环

// 默认让数组里面的第一个字符串当做公共字符串
// 遍历数组
// 在for循环里面拿到每一项的字符串。通过字符串的indexOf方法去查找第一个字符串，
// 看要查找的公共前缀第一次在当前项出现的位置是否为0(while循环的玄幻条件，结果不等于0)
// 不为0就让字符串的长度减一,
// 最后将公共字符串return出去(此时的字符串为截取过的)

function longestCommonPrefix(strs: string[]): string {
    // 如果数组为[],那么直接返回 '',
    if(strs.length === 0) return '';

    let prefix = strs[0];
    for(let i = 1; i < strs.length; i++) {
        const s = strs[i];
        while(s.indexOf(prefix) !== 0) {
            prefix = prefix.slice(0,prefix.length - 1);
        }
        // 小小的优化，当没遍历到最后一个时，公共字符串已经为''了，直接return掉函数
        if(prefix.length === 0) return ''
    }
    return prefix;
};

console.log(longestCommonPrefix(["flower","flow","flight"]))
console.log(longestCommonPrefix(["dog","racecar","car"]))


export default {};